/*******************************************************************************
 * Package: com.song.boot.springstudy.sort.find
 * Type:    ErFen
 * Date:    2025/8/5 14:53
 *
 * Copyright (c) 2025 LTD All Rights Reserved.
 *
 * You may not use this file except in compliance with the License.
 *******************************************************************************/
package com.song.boot.springstudy.sort.find;

/**
 * 功能描述：  二分查找
 *
 * @author Songxianyang
 * @date 2025/8/5 14:53
 */
public class ErFen {

    public static void main(String[] args) {
        // 有序
        int[] arr = {2, 3, 4, 10, 40, 41, 42, 43,45, 50, 70, 80, 90,};
        //                     10-3

        int zuo, you, mid;
        zuo = 0;
        you = arr.length - 1;
        System.out.println("左值："+you);

        // 每次需要维护z y值

        /*
        比较  如果目标值>mid的值  就在左边
               如果目标值 < mid 的值 右边
         */
        while (true) {
            mid = getMid1(zuo, you);
            if (50 > arr[mid]) {
                // 如果目标值>mid的值  就在左边
                zuo = mid + 1;
            } else if (50 < arr[mid]) {
                // 如果目标值 < mid 的值 右边
                you = mid - 1;
            } else if (50 == arr[mid]) {
                // 等于查找出来
                System.out.println("查找出来:"+mid);
                break;
            }
        }


        System.out.println("中间位置 mid:::"+getMid1(0, 13));
        // System.out.println(getMid2(3, 5));

    }


    // 中间位置 mid
    private static int getMid1(int left, int right) {
        return left + (right - left) / 2;
    }

    private static int getMid2(int left, int right) {
        return (right + left) / 2;
    }

}
